// LgSpriteGemCarrier.h: interface for the LgSpriteGemCarrier class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LgSpriteGemCarrier_H__6E162749_A07A_4485_86FC_05880EA20E74__INCLUDED_)
#define AFX_LgSpriteGemCarrier_H__6E162749_A07A_4485_86FC_05880EA20E74__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "DynamicLgSprite.h"
#include <queue>
class LgSpriteProperty;
struct Cargo_t 
{
	LgSpriteProperty* pCargo;
	D3DXVECTOR2 DropPos;
};
class LOGICSPRITES_API LgSpriteGemCarrier : public DynamicLgSprite  
{
public:
	LgSpriteGemCarrier(int nTime,D3DXVECTOR2 p1,D3DXVECTOR2 p2);
	virtual ~LgSpriteGemCarrier();
	void Update(DWORD dwCurrentTime);
// 	void SetCargo(LgSpriteProperty *p){m_pCargo=p;};
// 	void SetDropPos(D3DXVECTOR2 pos){m_DropPos=pos;}
	int Hit(RECT rect){return 0;}
	void FlyOut(LgSpriteProperty *pCargo, D3DXVECTOR2 pos);
private:
	int m_nTime;
	D3DXVECTOR2 m_StartPos;
	D3DXVECTOR2 m_EndPos;
	float m_fSpeedx;
	float m_fSpeedy;
	std::queue<Cargo_t> m_listJob;
	LgSpriteProperty *m_pCargo;
	D3DXVECTOR2 m_DropPos;
};

#endif // !defined(AFX_LgSpriteGemCarrier_H__6E162749_A07A_4485_86FC_05880EA20E74__INCLUDED_)
